/****************************************************************************************** Import */
import _ from 'lodash';
import Storage from './basis/storage';
import Session from './basis/session';
import Sign from './trans/power/sign';

/****************************************************************************************** Class */
export default class Arrive {

    /**
     * 看是否已经进行了arrive操作
     */
    static isArrived() {
        const sign = Session.get('system_user_sign');
        if (sign == null || !(_.has(sign, 'token') && _.has(sign, 'uid'))) return false;
        return true;
    }

    /**
     * 执行arrive操作（包含业务arrive和信息arrive）
     * 
     * @param {Function} callback 回调方法
     */
    static arrive(callback) {

        // 取storage中的sign
        Storage.get('system_user_sign', (sign)=> {

            // 初始化sign
            Sign.init(sign);

            // 调用回调方法
            callback();

            // 执行数据收集arrive
            this.collect();
        });
    }

    /**
     * arrive已完成，刷新新的sign到系统中
     * 
     * @param {Object} sign 用户标记对象
     */
    static arrived(sign) {
        Sign.refresh(sign);
    }

    /**
     * 收集方法
     */
    static collect() {
        console.log('arrive collect test');
    }
}
